<template>
  <div class="main">
    <div class="title">
      <a class="active" href="/login">登录</a>
      <span>·</span>
      <a href="/register">注册</a>
    </div>

    <!-- 添加显示用户名的区域 -->
    <div v-if="Object.keys(loginInfo).length > 0" class="user-info" style="text-align: center; margin-bottom: 20px;">
      <p>欢迎, {{ loginInfo.nickname || loginInfo.username }}!</p>
    </div>

    <div class="sign-up-container">
      <el-form ref="userForm" :model="user">
        <!--手机-->
        <el-form-item v-if="isMobile" class="input-prepend restyle" prop="mobile"
                      :rules="[{ required: true, message: '请输入手机号码', trigger: 'blur' },{validator: checkPhone, trigger: 'blur'}]">
          <div>
            <el-input type="text" placeholder="手机号" v-model="user.mobile"/>
            <i class="iconfont icon-phone"/>
          </div>
        </el-form-item>
        <!--邮箱-->
        <el-form-item v-else class="input-prepend restyle" prop="email"
                      :rules="[{ required: true, message: '请输入邮箱', trigger: 'blur' }]">
          <div>
            <el-autocomplete
              style="width: 300px"
              v-model="user.email"
              :fetch-suggestions="querySearch"
              placeholder="请输入内容"
              :trigger-on-focus="false"
              @select="handleSelect"
            >
              <template slot-scope="{ item }">
                <span class="addr">{{ item }}</span>
              </template>
            </el-autocomplete>
            <i class="iconfont icon-mail"/>
          </div>
        </el-form-item>

        <el-form-item class="input-prepend" prop="password"
                      :rules="[{ required: true, message: '请输入密码', trigger: 'blur' }]">
          <div>
            <el-input type="password" placeholder="密码" v-model="user.password"/>
            <i class="iconfont icon-password"/>
          </div>
        </el-form-item>

        <div class="btn">
          <input type="button" class="sign-in-button" value="登录" @click="submitLogin()">
        </div>
      </el-form>
      <!-- 更多登录方式 -->
      <div class="more-sign">
        <h6>社交帐号登录</h6>
        <ul>
          <li><a id="weixin" class="weixin" target="_blank"
                 href="http://localhost:8160/api/ucenter/wx/login"><i class="iconfont icon-weixin"/></a>
          </li>
          <li><a id="qq" class="qq" target="_blank" href="#"><i class="iconfont icon-qq"/></a></li>
        </ul>
      </div>
    </div>

  </div>
</template>

<script>
  import '~/assets/css/sign.css'
  import '~/assets/css/iconfont.css'
  import cookie from 'js-cookie'

  import loginApi from '@/api/login'

  export default {
    layout: 'sign',

    data() {
      return {
        user: {
          mobile: '',
          password: '',
          email: '',
          regType: this.isMobile ? 'mobile' : 'email' //验证方式 后端防止篡改
        },
        loginInfo: {},
        isMobile: false //是否手机注册 否为邮箱
      }
    },

    methods: {
      submitLogin() {
        loginApi.submitLogin(this.user).then(response => {
          if (response.success) {

            //把token存在cookie中、也可以放在localStorage中
            //we: szy education
            console.log(response.data.token)

            cookie.set('we_token', response.data.token)
            //登录成功根据token获取用户信息
            loginApi.getLoginInfo().then(response => {

              console.log("response2:"+response)
              this.loginInfo = response.data.item
              //将用户信息记录cookie
              cookie.set('we_ucenter', JSON.stringify(this.loginInfo))
              //跳转页面
              window.location.href = "/";
            })
          }
        })
      },

      checkPhone(rule, value, callback) {
        ////debugger
        if (!(/^1[34578]\d{9}$/.test(value))) {
          return callback(new Error('手机号码格式不正确'))
        }
        return callback()
      },
      handleSelect(item) {
        if (!(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(item))) {
          return new Error('邮箱格式不正确')
        }
        this.user.email = item
      },
      //输入建议
      querySearch(queryString, cb) {
        const emailsuffix = ["@qq.com", "@163.com", "@gmail.com", "@yahoo.com"]
        let results = [];
        if((queryString.split('@')).length-1===0){//判断@符号没出现 就添加邮箱建议
          for (let i = 0; i < emailsuffix.length; i++) {
            results[i] = queryString + emailsuffix[i];
          }
        }
        cb(results);
      },

    }
  }
</script>
<style>
  .el-form-item__error {
    z-index: 9999999;
  }
</style>